package br.ucb.sigplan.crud;

import java.util.List;

import br.ucb.sigplan.beans.Calendario;
import br.ucb.sigplan.dao.CalendarioDAO;
import br.ucb.sigplan.dao.impl.CalendarioDAOImpl;
import br.ucb.sigplan.exception.DAOException;

public class CalendarioCrud {
	private static CalendarioDAO calendarioDAO;
	
	private CalendarioCrud() {
		
	}
	
	public static CalendarioDAO getCalendarioCrud() {
		if (calendarioDAO == null) {
			calendarioDAO = new CalendarioDAOImpl();
		}
		return calendarioDAO;
	}
	
	public static void insert(Calendario calendario) throws DAOException{
		getCalendarioCrud().insert(calendario);
	}
	
	public static void update(Calendario calendario) throws DAOException{
		getCalendarioCrud().update(calendario);
	}
	
	public static void delete(Integer id) throws DAOException{
		getCalendarioCrud().delete(id);
	}
	
	public static Calendario findByChave(Integer id){
		return getCalendarioCrud().findByChave(id);
	}
	
	public static List<Calendario> findAll(){
		return getCalendarioCrud().findAll();
	}
	
	public static List<Calendario> findDatas(Character tipo) {
		return getCalendarioCrud().findDatas(tipo);
	}
	
	public static boolean isFeriadoExists(Calendario feriado) {
		for (Calendario calendario : findDatas('F')) {
			System.out.println("Feriado = "+calendario.getData().getTime());
		}
		System.out.println("Novo feriado = "+feriado.getData().getTime());
		return findDatas('F').contains(feriado);
	}
	
	public static Calendario findByData(Calendario calendario){
		return getCalendarioCrud().findByData(calendario.getData().getTime(), calendario.getDescricao());
	}
}
